//
//  UITextFieldDelegate.swift
//  Documentation
//
//  Created by Toj on 1/12/23.
//

public protocol UITextFieldDelegate : NSObjectProtocol {

    // 是否允许进入编辑状态
    optional func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool

    // 进入编辑状态
    optional func textFieldDidBeginEditing(_ textField: UITextField)

    // 是否允许结束编辑
    optional func textFieldShouldEndEditing(_ textField: UITextField) -> Bool

    // 完成编辑
    optional func textFieldDidEndEditing(_ textField: UITextField)

    @available(iOS 10.0, *)
    // 文本框已经结束编辑
    // 如果实现, 在textFieldDidEndEditing的地方调用:
    optional func textFieldDidEndEditing(_ textField: UITextField, reason: UITextField.DidEndEditingReason)

    // 替换已有字符串的方法, 返回NO不更改文本
    optional func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool

    @available(iOS 13.0, *)
    optional func textFieldDidChangeSelection(_ textField: UITextField)

    // 是否允许清空已有文本内容
    optional func textFieldShouldClear(_ textField: UITextField) -> Bool

    // 其实就是点击return 就会自动调用此方法, 返回NO: 不做任何事情
    optional func textFieldShouldReturn(_ textField: UITextField) -> Bool
}
